home *** CD-ROM | disk | FTP | other *** search
/ Visual Basic Source Code / Visual Basic Source Code.iso / vbsource / dblrou1r / player.cls < prev    next >
Text File  |  1998-11-04  |  3KB  |  110 lines

  1. VERSION 1.0 CLASS
  2. BEGIN
  3.   MultiUse = -1  'True
  4. END
  5. Attribute VB_Name = "Player"
  6. Attribute VB_GlobalNameSpace = False
  7. Attribute VB_Creatable = True
  8. Attribute VB_PredeclaredId = False
  9. Attribute VB_Exposed = False
  10. ' A player class for the game Thang. Contains all of the variables and stuff a
  11. ' player object needs to do its thang! :)
  12.  
  13. Public m_hDC As Long
  14. Public m_PosX As Long
  15. Public m_PosY As Long
  16. Public m_Color As Long
  17. Public m_Player As Integer
  18.  
  19. Private m_VelX As Long
  20. Private m_VelY As Long
  21.  
  22. Private m_Dir As Integer
  23.  
  24. Public Sub Create(hDC As Long, X As Long, Y As Long, Color As Long, PlayerNo As Integer)
  25.       m_hDC = hDC
  26.       m_PosX = X
  27.       m_PosY = Y
  28.       m_Color = Color
  29.       m_Player = PlayerNo
  30. End Sub
  31.  
  32. Public Sub Move()
  33.       m_PosX = m_PosX + m_VelX
  34.       m_PosY = m_PosY + m_VelY
  35. End Sub
  36.  
  37. Public Sub Draw()
  38.       For X = 0 To 2
  39.             For Y = 0 To 2
  40.                   SetPixel m_hDC, m_PosX + X, m_PosY + Y, m_Color
  41.                   ScrBufPut m_PosX + X, m_PosY + Y, m_Player
  42.             Next Y
  43.       Next X
  44. End Sub
  45.  
  46. Public Sub ChangeDir(DIR)
  47.       Select Case DIR
  48.             Case DIR_UP:
  49.                   If Not m_Dir = DIR_DOWN Then
  50.                         m_VelY = VEL_UP
  51.                         m_Dir = DIR_UP
  52.                   End If
  53.             Case DIR_DOWN:
  54.                   If Not m_Dir = DIR_UP Then
  55.                         m_VelY = VEL_DOWN
  56.                         m_Dir = DIR_DOWN
  57.                   End If
  58.             Case DIR_LEFT:
  59.                   If Not m_Dir = DIR_RIGHT Then
  60.                         m_VelX = VEL_LEFT
  61.                         m_Dir = DIR_LEFT
  62.                   End If
  63.             Case DIR_RIGHT:
  64.                   If Not m_Dir = DIR_LEFT Then
  65.                         m_VelX = VEL_RIGHT
  66.                         m_Dir = DIR_RIGHT
  67.                   End If
  68.             Case DIR_STOPX:
  69.                   m_VelX = VEL_NONE
  70.             Case DIR_STOPY:
  71.                   m_VelY = VEL_NONE
  72.             Case DIR_NEWGAME:
  73.                   m_Dir = DIR_NEWGAME
  74.       End Select
  75. End Sub
  76.  
  77. Public Function Collision(OtherPlayer As Player) As Boolean
  78.       ' If player has left the screen:
  79.       ' Left
  80.       If m_PosX < 0 Then
  81.             Collision = True
  82.             Exit Function
  83.       End If
  84.       ' Right
  85.       If m_PosX > (GetSystemMetrics(SM_CXSCREEN) - Form1.Frame1.Width) Then
  86.             Collision = True
  87.             Exit Function
  88.       End If
  89.       ' Up
  90.       If m_PosY < 0 Then
  91.             Collision = True
  92.             Exit Function
  93.       End If
  94.       ' Down
  95.       If m_PosY > GetSystemMetrics(SM_CYSCREEN) Then
  96.             Collision = True
  97.             Exit Function
  98.       End If
  99.  
  100.       For X = 0 To 2
  101.             For Y = 0 To 2
  102.                   ' If player has hit other player's line
  103.                   If ScrBufGet(m_PosX + X, m_PosY + Y) = OtherPlayer.m_Player Then
  104.                         Collision = True
  105.                         Exit Function
  106.                   End If
  107.             Next Y
  108.       Next X
  109. End Function
  110.